package com.sry.blog.sys.controller;


import com.sry.blog.sys.model.Tag;
import com.sry.blog.sys.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * InnoDB free: 10240 kB 前端控制器
 * </p>
 *
 * @author SR_Y
 * @since 2022-01-05
 */
@RestController
@RequestMapping("/tag")
public class TagController {

    @Autowired
    private TagService tagService;

    /**
     * @param tag 标签
     * @return boolean
     */
    @RequestMapping(value = "/save", method = RequestMethod.POST)
    @ResponseBody
    public boolean create(@RequestParam Tag tag) {
        return tagService.creatOrUpdate(tag);
    }

    /**
     * @param tags 标签
     * @return boolean
     */
    @RequestMapping(value = "/saves", method = RequestMethod.POST)
    @ResponseBody
    public List<Tag> creates(@RequestBody List<Tag> tags) {
        for (int i = 0; i < tags.size(); i++) {
            Tag tag = tags.get(i);
            if (!tagService.isExist(tag)) {
                if (tagService.creatOrUpdate(tag)) {
                    tags.set(i, tagService.getOne(tag));
                } else {
                    tags.remove(i);
                    i--;
                }
            } else {
                tags.set(i, tagService.getOne(tag));
            }
        }
        return tags;
    }

    /**
     * @return Tag List
     */
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    public List<Tag> list() {
        return tagService.list();
    }

//    public List<Tag> tagList(List<Tag> tags) {
//        for (int i = 0; i < tags.size(); i++) {
//            if (StrUtil.isEmpty(Integer.toString(tags.get(i).getId()))) {
//                tags.set(i, tagService.getOne(tags.get(i)));
//            }
//        }
//        return tags;
//    }

    public Tag getTag(Integer id) {
        return tagService.getById(id);
    }
}

